package TouchTheFish;
/**
 * @Slogan: 哆啦A梦的口号你忘了么 ？
 * 生活百般滋味，人生需要笑对！！！
 */
public class 重写与重载 {
    /**
     * 从字面上看，重写就是 重新写一遍的意思。
     * 其实就是在子类中把父类本身有的方法重新写一遍**。
     * 子类继承了父类原有的方法，但有时子类并不想原封不动的继承父类中的某个方法，
     * 所以在方法名，参数列表，返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下，
     * 对方法体进行修改或重写，这就是重写。但要注意子类函数的访问修饰权限不能少于父类的。
     * */
    /*public static class Father{
        public static void main(String[] args) {
            Son s = new Son();
            s.sayHello();
        }
        public void sayHello() {
            System.out.println("Hello!");
        }
    }

    public static class Son extends Father {
        @Override
        // 父类方法的重写
        public void sayHello() {
            System.out.println("Hello my son!");
        }
    }*/

/**
 *在一个类中，同名的方法如果有不同的参数列表（参数类型不同、参数个数不同甚至是参数顺序不同）则视为重载。
 * 同时，重载对返回类型没有要求，可以相同也可以不同，但不能通过返回类型是否相同来判断重载。
 * */
    public static class Father{
        public static void main(String[] args) {
           Father father =  new Father();
           father.sayHello();
           father.sayHello("bixuewei");
        }

        public void sayHello(){
            System.out.println("Hello!");
        }
        public void sayHello(String name){
            System.out.println("Hello " + name + " !");
        }
    }

}
